package com.chenjj.java.spring.spel;

/**
 * SPEL表达式解析
 * 参考：https://blog.csdn.net/jaune161/article/details/51476013 <br>
 *     https://www.jianshu.com/p/5537b2c86acd
 */
public interface SpelService {

    /**
     *  根据指定的spel，去从检索数据
     * @param spel
     * @param obj
     * @param  type
     */
    public <T> T getValueFromObj(String spel,Object obj,T type);


    /**
     * 文本表达式支持字符串、 日期 、 数字（正数 、 实数及十六进制数） 、 布尔类型及 null。<br>
     * 其中的字符表达式可使用单引号来表示，形如：'Deniro'。如果表达式中包含单引号或者双引号字符，那么可以使用转义字符 /。<br>
     * 数字支持负数 、小数、科学记数法、八进制数和十六进制数 。 默认情况下，实数使用 Double.parseDouble() 进行表达式类型转换 。<br>
     * @param text
     * @return
     */
    public <T> T getValueFromText(String text);


}
